Aula 24 - Finalizando (o mais importante) sobre o pacote flextable

Módulo 2: Trabalhando com dados

Carolina Musso

PROFESP, DEMSP, MS

Esta semana

Aula 22 - Trabalhando com datas

O pacote lubridate

Aula 23 - condicionamento

As funções if(), if_else() e case_when()

Aula 24 - Tabela

Mais sobre o pacote flextable: título e fontes

Leituras para aprofundamento

Dados de Hoje

  • Incrementando nosso código
paises <- c("Brazil", "Italy", "France", "Argentina")

 letalidade_Brasil_Italia <- dados_covid %>% 
  filter(Country %in% paises, 
         New_cases>0,
         !is.na(New_cases)) %>% 
  separate(Date_reported, c("Ano", "Mês", "Dia")) %>% 
  mutate(Country=case_when(
    Country=="Brazil" ~ "Brasil",
    Country=="Italy" ~ "Itália",
    Country=="France" ~ "França")) %>% 
  mutate(letalidade_diaria = New_deaths/New_cases*100)%>% 
   mutate(Continente = ifelse(Country=="Brazil"|Country=="Argentina",
                              "América do Sul", "Europa")) %>% 
  group_by(Continente, Ano, Country) %>% 
  summarise(letalidade_media = mean(letalidade_diaria,
                                    na.rm=T), 
            desvio_padrao = sd(letalidade_diaria,
                                    na.rm=T ),
            Casos_maximo = max(New_cases,
                                    na.rm=T),
            Obitos_maximo = max(New_deaths,
                                    na.rm=T)) %>% 
  ungroup() %>% 
  mutate_if(is.numeric, ~format(., big.mark=".", decimal.mark=",", digits=2)) 
  

 letalidade_Brasil_Italia
# A tibble: 18 × 7
   Continente Ano   Country letalidade_media desvio_padrao Casos_maximo
   <chr>      <chr> <chr>   <chr>            <chr>         <chr>       
 1 Europa     2020  Brasil  3,26             " 1,867"      "  326.751" 
 2 Europa     2020  França  7,14             "20,552"      "  332.505" 
 3 Europa     2020  Itália  7,52             " 7,500"      "  242.062" 
 4 Europa     2021  Brasil  2,83             " 0,674"      "  533.024" 
 5 Europa     2021  França  1,10             " 0,838"      "  519.740" 
 6 Europa     2021  Itália  1,87             " 1,137"      "  257.579" 
 7 Europa     2022  Brasil  0,68             " 0,327"      "1.283.024" 
 8 Europa     2022  França  0,17             " 0,091"      "2.417.043" 
 9 Europa     2022  Itália  0,28             " 0,126"      "1.268.153" 
10 Europa     2023  Brasil  0,75             " 0,492"      "  206.944" 
11 Europa     2023  França  0,66             " 0,261"      "  151.707" 
12 Europa     2023  Itália  0,80             " 0,304"      "  132.328" 
13 Europa     2024  Itália  2,56             " 0,533"      "   21.665" 
14 <NA>       2020  <NA>    4,12             " 1,990"      "   97.588" 
15 <NA>       2021  <NA>    1,53             " 0,495"      "  234.660" 
16 <NA>       2022  <NA>    0,36             " 0,301"      "  770.687" 
17 <NA>       2023  <NA>    0,56             " 0,292"      "   72.558" 
18 <NA>       2024  <NA>    0,25             " 0,143"      "    8.912" 
# ℹ 1 more variable: Obitos_maximo <chr>

flextable

flextable(letalidade_Brasil_Italia)
Tab1

Editando com o que já sabemos

tab1 <- flextable( letalidade_Brasil_Italia) %>% 
  autofit() %>% 
  align(align="r", part="all") %>% 
  align(align="c", j=c(1,2),  part="all") %>% 
  bold(part="header") %>% 
  bold(j=c(1,2)) %>% 
  bg(bg="lightgrey", j=c(1,2), part="all") %>% 
  hline(i=c(2,4,6)) %>% 
  vline(j=2)
  
tab1

Tab2

Título e cabeçalho

  • set_header_labels()
tab1 %>% 
  set_header_labels( 
  Country="País", 
  letalidade_media="Letalidade Média Diária",
  desvio_padrao="Desvio Padrão",
  Casos_maximo="Máximo de casos em 24h", 
  Obitos_maximo="Máximo de óbitos em 24h")

Tab4

  • Quebrar a linha onde eu desejar: “\n”
tab2 <- tab1 %>% 
  set_header_labels( 
  Country="País", 
  letalidade_media="Letalidade Média Diária",
  desvio_padrao="Desvio\n Padrão",
  Casos_maximo="Máximo de casos em 24h", 
  Obitos_maximo="Máximo de óbitos em 24h")
 
tab2

Tab4

Cabeçalho Extra

  • add_header_row()
tab3 <- tab2 %>% 
  add_header_row(values = c("Tempo/Lugar", "Indicadores"),
                 colwidths = c(2,5))

tab3

Tab4

Título

  • set_caption
  • Cabeçalho YAML
    • output: officedown::rdocx_document
run_num <- run_autonum(seq_id = "tab", pre_label = "Tabela", 
                       post_label=". ", bkm = "anytable")

tab3 %>% 
set_caption("Título da tabela",
            autonum=run_num ) 

Tempo/Lugar

Indicadores

Continente

Ano

País

Letalidade Média Diária

Desvio
Padrão

Máximo de casos em 24h

Máximo de óbitos em 24h

Europa

2020

Brasil

3,26

1,867

326.751

7.453

Europa

2020

França

7,14

20,552

332.505

5.602

Europa

2020

Itália

7,52

7,500

242.062

5.339

Europa

2021

Brasil

2,83

0,674

533.024

21.094

Europa

2021

França

1,10

0,838

519.740

3.454

Europa

2021

Itália

1,87

1,137

257.579

3.409

Europa

2022

Brasil

0,68

0,327

1.283.024

6.658

Europa

2022

França

0,17

0,091

2.417.043

1.996

Europa

2022

Itália

0,28

0,126

1.268.153

2.628

Europa

2023

Brasil

0,75

0,492

206.944

1.110

Europa

2023

França

0,66

0,261

151.707

808

Europa

2023

Itália

0,80

0,304

132.328

750

Europa

2024

Itália

2,56

0,533

21.665

371

2020

4,12

1,990

97.588

2.602

2021

1,53

0,495

234.660

4.516

2022

0,36

0,301

770.687

2.464

2023

0,56

0,292

72.558

89

2024

0,25

0,143

8.912

23

Fonte

  • A fonte deve estar instalada no seu computador!
tab3 %>% font(part = "all", fontname = "Verdana")

Tab4

  • Com uma fonte nova
tab3 %>% font(part = "all", fontname = "Poppins")

Tab4

Até mais, pessoal!